home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
ARTIENCE
/
XXXPERT.LZH
/
XXXPERT.DOC
< prev
next >
Wrap
Text File
|
1987-11-06
|
50KB
|
1,813 lines
XXXPERT
V11
Copyright 1987
Stephen Thurber
1926 Labrador Lane
Vienna, VA 22180
All rights reserved
INTRODUCTION
XXXPERT is an expert system development facility which
includes an editor, file manager and expert systems
inference engine packaged together in one integrated
environment.
You can use XXXPERT to develop expert systems that use rules
you write in an English language syntax. You can develop
expert systems that will aid you and others in doing things
that you would not be able to do consistently as well
without XXXPERT. XXXPERT allows you to define expert
knowledge just once then apply it repeatedly time after time
as a stand-alone expert system or integrated with other
applications software and other files. There is essentially
no limit to the size and complexity of expert systems that
may be constructed with XXXPERT. XXXPERT is very fast and
allows rulebases (expertise) to be chained together into an
arbitrarily large system of knowledge.
XXXPERT is a product that is distributed under the
'shareware' concept. Please see the next chapter for
further explanation.
SHAREWARE
XXXPERT is distributed under a concept commonly known as
'shareware'. This approach to software distribution allows
you to receive and try software then pay for it according to
the value you have received from it.
If you feel that, after trying XXXPERT, it has given you
some value, please contribute according to your conscience
and level of satisfaction. Shareware operates largely on
the honor system with a contribution being your vote for
continued development of this product. If you contribute
$49.00 or more, you will receive a copy of the current
updated versions of XXXPERT and CONSULT, as well as a USER-
ID that entitles you to future releases for a modest renewal
royalty (currently $5.00 per release) and, in addition, you
will receive a $10.00 rebate each time someone else makes a
$49.00 or larger royalty contribution from a copy of your
own paid copy of XXXPERT using the Form provided on your
paid updated disk. (Rebates are limited to the amount of
your contribution.)
Continued commercial, non-profit and government organization
use is prohibited unless a $49.00 royalty has been paid for
each copy of XXXPERT in use (ie: according to the common
analogy with books--one reader/user at a time per copy).
Site licenses are available for a royalty of $2000.00,
however, for large users.
Please address correspondence and contributions to:
XXXPERT,V11
c/o Stephen Thurber
1926 Labrador Lane
Vienna, VA 22180
XXXPERT DESIGN PHILOSOPHY
A few words on the design philosopy underlying XXXPERT will
probably aid you gretly in using it well. Therefore I will
digress a bit before returning you to a nuts and bolts
discussion of product features. The following are the key
points of XXXPERT's general design approach and the reasons
for each:
1. XXXPERT and CONSULT are conceived to be complements to
your existing stable of software. Therefore the product
concentrates on delivering only those features which are
uniquely an aspect of expert systems while providing links
and tools to make the product cooperate with the rest of
your PC software. This is helpful since you probably
already know how to use an existing set of software
(including DOS, batch files, a database, spreadsheet or
whatever) and would like to spend a minimum amount of time
on learning new quirks of other software. It would
therefore be wasteful of your time (and mine) to duplicate
commonly available software functions here in this product.
For this reason, you will not find a new database,
spreadsheet, or batch file syntax introduced here. Instead
XXXPERT adds only the new features you need to quickly add
expert systems capabilities to your overall PC applications
environment. You will not need to learn new syntax for
features duplicating those you already have on your PC.
2. There is a wide variety of other software out there, and
any of it may interest you as a complement to this product.
XXXPERT and CONSULT therefore are designed to link to other
software through standard DOS files, DBASE 3 (r) files and
LOTUS (r) .WKS spreadsheet files, allowing you to use them
with virtually any other PC software.
3. You probably already know how to use DOS batch files, so
this product does not introduce another 'script' language
for you to use. Instead, we attempt to make it easy to
build systems using DOS batch files to script together your
application with this product and any other type of product
(or user-written program) of your chosing. This approach is
easy, familiar and frugal with PC memory.
4. This product has an integrated development approach that
is similar to popular new programming language compilers in
that coding, compilation, testing, debugging, and operating
expert systems may be done without leaving XXXPERT. This
greatly speeds the development process for expert systems.
A CONSULT "run-time" system lets you build expert systems
technology into your applications (with XXXPERT being
essentially invisible to the user.) A MINICON run time
system is included for situations wherein memory is tight.
HARDWARE REQUIREMENTS
XXXPERT requires an IBM (r) or closely compatible computer
with DOS 2.1 or above, 256k RAM or more, and a monochrome or
color monitor. Additional RAM may be needed to use the RUN@
feature that allows you to run other programs within XXXPERT
and CONSULT (depending on the size of the program you intend
to run.) MINICON can run in as little as 115k, however.
THE XXXPERT DISK
Please feel free to make as many copies of the XXXPERT disk
as you wish, PROVIDED THAT ALL OF THE FILES ON THE DISK ARE
COPIED WITHOUT MODIFICATION. You may give copies of the
disk to anyone, and are encouraged to do so as long as you
do not distribute any XXXPERT file without the others.
XXXPERT files include:
XXXPERT.COM the integrated expert system
CONSULT.COM the consult-only system
XXXPERT.DOC this document
XXXPERT.FRM a correspondence form
CAR.R car diagnosis rules sample
CAR.K compiled car rules
CAR.A car diagnosis asks sample
CAR2.R another car rules sample
CAR2.K compiled car2 rules
CAR2.A another car asks sample
CREDIT.R credit authorization rules
CREDIT.K compiled credit rules
CREDIT.A credit authorization asks
CHEESE.R cheese selection rules
CHEESE.K compiled cheese rules
CHEESE.A cheese selection asks
READ.ME introductory notes
INSTALLING XXXPERT
XXXPERT should be installed on a diskette along with a copy
of your DOS system. The easiest way to do this is:
1: Insert your DOS diskette in drive A.
2: Insure that A is the default drive.
3: Insert a new floppy disk in drive B.
4: type: format b:/s
5: press return.
6: Insert the XXXPERT distribution disk in drive A.
7: type: copy a:*.* b:
8: press return.
The new disk will then be ready to use as your expert system
disk.
Alternatively, XXXPERT may be installed on your hard disk.
DEVELOPING RULES
XXXPERT is a rule-driven system. Rules are simply
statements of logic that you wish to have applied to the
area of expertise your rules are to address. These
statements are written in English and abbreviations
thereof. The first rule statement in a rules file must be
on a line by itself (and on the first line of the file).
This statement must specify the name of the goal for the
consultations to be performed with the set of accompanying
rules. In the CAR rulebase the goal is PROBLEM since the
purpose of the CAR consultation is to determine the probelm
with the car. The goal in a rule file is always an
identifier (a fieldname or variable) to name the object of
the consultation process. XXXPERT will use all the
subsequent rule statements to seek a value for the goal.
Each rule statement after the first must be of the following
general form:
IF ==== EQ ---- AND ==== EQ ---- THEN ==== EQ ----
where ==== indicates an identifier (a fieldname or variable)
and ---- indicates a state (a constant or value). For
example, to express the knowledge that: baby's diaper
should be changed when baby is crying and diaper is wet, the
rule could be coded:
IF DIAPER EQ WET AND BABYACT EQ CRY THEN ACTION EQ
NEW.DIAPER
The EQ in XXXPERT's rules syntax stands for equals. The
keyword NE may be used to express an inequality (not equals)
situation in otherwise similar syntax. For field values
that are numeric, the GT (greater than), GE (greater than or
equal to), LT (less than), and LE (less than or equal to)
keywords may also be used as appropriate. The part of the
rules statement format shown above as: AND ==== EQ ---- is
optional as well as repeatable. Thus the following rule
examples are all valid and meaningful (but different, of
course!):
IF DIAPER EQ WET THEN ACTION EQ NEW.DIAPER
IF DIAPER EQ WET AND BABYACT EQ CRY AND HAD.NO.NAP EQ YES
THEN ACTION EQ GETHELP
A set of rules may be constructed in this way to handle an
arbitrarily complex set of expertise. The CAR.R file
contains an example set of rules for diagnosing an
automobile that won't start. The CHEESE.R file contains an
example set of rules for choosing cheese to go with a course
of a meal. Other examples may be found in the CAR2.R and
CREDIT.R files. You may use the DOS 'type' command to view
these files or you may use the XXXPERT rules editor after
doing a Getfile for CAR, CHEESE, CAR2 or CREDIT
respectively.
Identifiers (fields or variables) may be any name or other
collection of letters, punctuation and numbers in a string
up to 16 characters in length. Imbedded blanks are not
allowed. Constants (values) are subject to these same
restrictions. Constants may be words or numbers and if
numeric they may be integer (ie: 1) or real (ie: 123.45). A
single file of rules may consist of up to 400 rule elements
in this version of XXXPERT. A rule element is generated by
each IF and by each pair of ANDs. Rulebases with more than
400 rule elements can be effectively implemented through
multiple related rulebases. Techniques for achieving this
are discussed in the section on EPLIOGUE and in the section
on extended input/output.
Rules are coded in free format with multiple rules per line
or multi-line rules as desired. XXXPERT supports sets of
rules up to 300 lines per file in this version of XXXPERT.
This limit is also easily circumvented through multiple
related rulebase techniques. NOTE: Rules must be created in
upper case, and this requirement is enforced by the XXXPERT
editor. (The editor uses upper case regardless of the case
you type.)
DEVELOPING ASKS
XXXPERT will need certain information from the user in the
course of any given consultation session depending on the
rules being used in that session. The "asks" define how
XXXPERT should ask the user (consultee) for such
information. In general you should code an ask for each
identifier that appears in the left-hand-side of a rule
(before the THEN) unless it also appears in the right-hand-
side of another rule.
XXXPERT asks consist of two lines each. The first line of
each ask must contain the identifier to which it applies,
and the identifier must begin at the beginning of the line.
The second line of each ask must contain one of the
following: 1) A text prompt that XXXPERT should use to
request a value from the user for that identifier; or 2) A
specification for a worksheet cell from which to retrieve
the information; 3) A specification of a database .DBF file
and record selection specification for a record containing a
value for the ask; or 4) A specification for a program to
run which will provide the necessary data to XXXPERT. Thus,
odd-numbered lines of the asks (first, third, fifth, etc.)
will contain identifiers while even-numbered lines will
contain the associated text prompt for the user, a worksheet
specification, a database specification or a program
specification.
To define a text prompt for an ASK you merely place the text
of the desired prompt on the second line of the ASK.
XXXPERT and CONSULT will automatically edit a user response
to the prompt to insure that the response in consistent with
at least one rule in the rulebase being used. In the event
that the response is invalid there will be a warning message
and the prompt will be repeated for the user.
To define a worksheet reference you begin the second ASK
line with the keyword: WKS@ followed by the name of the
worksheet followed by the desired cell. To refer to the C25
cell of a worksheet named BUDGET.WKS for an ASK of the
XXXPERT field named SALES you would use the following
statements:
SALES
WKS@ BUDGET C25
Only standard .WKS format files are supported by this
feature. If the attempt to retrieve worksheet data should
fail, a value of NA will be returned for the field
associated with the ASK. NA should therefore not be used as
a value in RULES.
To define a database reference you begin the second line of
the ASK with the keyword: DB3@ followed by the database file
name followed by a selector field followed by a value to
search for in the selector field. The DB3 interface will
look for a record which has the stated value in the
specified selector field. Upon finding such a record, the
value in that record for the ASKed field in the record will
be given to the ASKed field in XXXPERT. To refer to the
record containing 1987 in the YEAR field of a database named
BUDGET.DBF for an ASK of the XXXPERT field named SALES you
would use the following statements:
SALES
DB3@ BUDGET YEAR 1987
Only standard .DBF format dBASE 3 (r) files are supported by
this feature. If the attempt to retrieve database record
should fail, a value of NA will be returned for the field
associated with the ASK. NA should therefore not be used as
a value in RULES.
To define a program to run under XXPERRT or CONSULT to
provide the data needed for an ASK you must begin the second
line of the ASK with the code: RUN@ followed by the name of
the program to be run. To run GETDAT.COM you would use the
following statement on the second line of the ASK:
RUN@ GETDAT
The program that you run must be a .COM format file and must
not require more memory than is left available on your
machine after XXXPERT or CONSULT has been loaded in. The
program that you run must place a value for the AKSed field
in a file named RUN.I (this is where XXXPERT and CONSULT
will be looking for it). The program that you run must also
be well-mannered enough to not disturb DOS, CONSULT or
XXXPERT-owned parts of your computer. If your program is
too large or ill-mannered your consultation will crash or
behave unpredictably. If the attempt to retrieve the
program's data should fail, a value of NA will be returned
for the field associated with the ASK. NA should therefore
not be used as a value in RULES.
XXXPERT supports sets of asks of up to 600 lines per file.
Once you create a set of asks you should save it under the
same name as the rules that you intend to use them with.
See CHEESE.A, CREDIT.A, CAR.A and CAR2.A for asks examples.
NOTE: Asks must be created in upper case, and this
requirement is enforced by the XXXPERT editor.
PROLOGUE, INTERMISSION AND EPILOG
It may be desirable for certain explanatory information to
be displayed in the course of a consultation in the XXXPERT
environment. The prologue feature, intermission feature and
epilogue feature are all provided in XXXPERT to this
purpose. Prologue provides the ability to define a screen
of text to be displayed at the beginning of a consultation
with a given set of rules. Intermission provides the
ability to define a screen of text for any given set of
rules that is to be displayed at the end of a consultation
but just prior to the presentation of the XXXPERT
conclusion. Epilogue provides the ability to define a
screen of text for any given set of rules that is to be
displayed after the presentation of the XXXPERT conclusion
and that may vary depending on the specific conclusion that
is reached by XXXPERT.
You may use the prologue feature by entering the editor (as
described in the next chapter) to create a prologue screen
under the same file name as the rules you intend to use it
with. The screen contents may be entirely of your chosing
up to the 20 line limit provided for the prologue screen for
any given file group (set of rules files.)
You may use the intermis feature by entering the editor (as
described in the next chapter) to create a intermis screen
under the same file name as the rules you intend to use it
with. The screen contents may be entirely of your chosing
up to the 20 line limit provided for the intermis screen for
any given file group (set of rules files.)
You may use the epilogue feature by entering the editor (as
described in the next chapter) to create an epilogue screen
for each conclusion (value for the rules goal) that you want
to have in your rules file. The format of the epilogue file
is similar to that for asks in the sense that you must put a
value on a line by itself (at the beginning of the line) to
identify the start of the text associated with a given
possible conclusion (goal value). The text to be displayed
when that goal value is selected as the XXXPERT conslusion
must be coded on the immediately subsequent lines (up to 20
lines). The end of the text associated with a given goal
value (conclusion) is delimited by placing the same goal
value on a line by itself at the beginning of the line. An
epilogue file for 2 possible goal values (a conclusion of
YES and a conclusion of NO) might look like this:
(see next page)
YES
THIS IS THE TEXT I WANT TO DISPLAY FOR THE YES CONCLUSION
FOR MY EPILOGUE
YES
NO
THIS IS THE TEXT I WANT TO DISPLAY FOR THE NO CONCLUSION
FOR MY EPILOGUE
NO
The EPILOGUE facility also allows you to link to another set
of rules depending on the results of the current
consultation. This feature (called chaining) is available
only in the CONSULT program (see the chapter on CONSULT
later in this manual) and it allows the construction of
expert systems with essentially any number of rules.
Chaining is the capability to link multiple rule files
serially within a single CONSULTation run. This capability
is implemented through the CHN@ command in the EPILOGUE
facility. CHN@ allows you to name a rulebase to invoke and
causes the results of the current consultation to be passed
on to the consultation for the named rulebase. The EPILOGUE
facility allows for an individual CHN@ rulebase
specification for each possible consultation result,
therefore the rulebase used for the next consultation may be
varied according to the outcome of the current
consultation. There is no limit to the number of levels
rulebases that may be involved in this type of arrangement.
To specify a set of rules to be chained-to after the current
consultation is completed you include a CHN@ keyword as the
first 4 characters in any of the epilogue lines for the
value of the goal to which chaining is to apply in the
chained-from consultation. CONSULT will recognize the
keyword, suppress display of that epilogue line and use it
as a specification for chaining. The CHN@ should be
followed by at least one space, then the name of the rules
file to use for the next stage of consultation. For
example, to chain to the XYZ rules when the value for the
current consultation goal is ABC an EPILOGUE with no other
display lines would look like this:
ABC
CHN@ XYZ
ABC
Other lines of information could have been included in the
EPILOGUE and would have been displayed normally. If more
than one CHN@ line is included in the range of lines for one
value of the goal then the last CHN@ line so included will
prevail.
The use of CHN@ overrides the usual convention on .O files
inn the CONSULT program (see the section on extended
input/output later in this manual). Instead of observing
the .O file convention, a .I file is created under the name
of the chained-to rules (ie: XYZ.I in the example above).
This file contains the name and value of the goal field for
the chained-from rules so that the chained-to consultation
rules may be primed with data from the goal of the chained-
from rules. Using this feature you can create a network of
sets of rules that comprise a knowledge-base that may be as
large as one wishes.
USING XXXPERT
You may start XXXPERT by booting your system with the
XXXPERT disk in the default drive A. When the system has
completed the boot process XXXPERT may be started by typing:
xxxpert
and pressing the return key. XXXPERT will start and a
banner screen will appear welcoming you to the XXXPERT
system environment. To continue you should press return
once again.
At this point XXXPERT's main menu will display, offering the
following options:
Getfile Editfile Consult Keep Trace Xref Output Quit
You may select the option you need by typing the first
letter of the name of the option. The letter may be typed
in either upper or lower case. Alternatively, you may use
the right-arrow and left-arrow keys to position the
highlight box over a menu selection and press return to
activate that selection. These are conventions that apply
to all menu selection options throughtout the XXXPERT
product.
GETFILE
The main menu's Getfile option brings up a prompt for a
filename and loads the file group you specify into the file
areas within XXXPERT. This allows you to retrieve a
previously-created set of inference rules, asks and other
information so that you may modify and/or consult with
them. If you make a error in typing the filename you may
use the backspace (or left-arrow) key to correct it. Once
the file name has been typed press the return key to perform
the get. Do not include an extension in the file name (ie:
to retrieve the sample car rules and asks, CAR is correct,
CAR.R is incorrect.) XXXPERT will retrive both the rules
and all related files (including asks, prologue,
intermission and epilog, if present) for the specified
name. In the CAR example above, both CAR.R and CAR.A would
be reteived by requesting CAR.
EDITFILE
The main menu's Editfile option brings up a menu of these
suboptions:
Rules Asks Prologue Intermis Epilogue Quit
The rules option starts the rules editor subsystem and
displays the first screen of rules from the current file
group. If the current filegroup's set of rules is empty,
the edit screen will be blank (this will be the case if
Getfile has not been successfully performed and no previous
rules edit has been performed since XXXPERT was started.)
Once in the rules editor you may type in XXXPERT rules in
free format. The editor always stores rule information in
upper case except for numbers and punctuation which (for the
ones that are allowed) are stored in the way they are
typed. The home, up-arrow, left-arrow, right-arrow, end,
down-arrow, pagedown, and pageup keys may be used to move
the cursor position accordingly. The backspace key performs
the same function as the left-arrow. The del key may be
used to delete characters and the ins key may be used to
switch to and from insert mode in the editor. (An indicator
in the bottom line of the edit screen notes whether the
editor is in insert mode or overtype mode.) A line may be
deleted by pressing the D key while the ctrl key is being
held down. The return key will advance the cursor to the
start of the next line on the screen except while in insert
mode, in which case the return key will insert a blank line
in front of the line in which the cursor is currently
positioned. The slash key (/) may be used to bring in a
pop-up menu for other functions as described in the EDITOR
POP-UP MENU section below.
The asks option starts the asks editor subsystem and
displays the first screenful of asks from the current file
group in XXXPERT. Asks edit performs functions in the same
manner as rules edit, except that the editing is with
respect to asks rather than rules.
The prologue option starts the prologue editor subsystem and
displays the prologue screen for the current file group in
XXXPERT. Prologue edit functions similarly to rules edit
except that XXXPERT limits the prologue to 20 lines of text
and the editor enforces this limit.
The intermis option starts the intermis editor subsystem and
displays the intermis screen for the current file group in
XXXPERT. Intermis edit functions similarly to rules edit
except that XXXPERT limits the intermis to 20 lines of text
and the editor enforces this limit.
The epilogue option starts the epilogue editor subsystem and
displays the first epilogue screenful for the current file
group in XXXPERT. Prologue edit functions similarly to
rules edit.
Quit returns you to the XXXPERT main menu.
EDITOR POP-UP MENU
In sny edit session, the slash key may be used to invoke a
pop-up menu that contains the following options:
Continue Save Zap Quit
Continue removes the pop-up menu and continues the edit
process.
Save allows you to save edited material (rules or asks) to
disk under a filename of your choosing. When specifying a
filename do not include an extension. XXXPERT will add a .R
extension for files saved during a rules edit, a .A
extension for files saved during an asks edit a .P extension
for files saved during a prologue edit, a .N extension for
files saved during an intermis edit, and a .E extension for
files saved during an epilogue edit. Files that you intend
to use together as a file group (set of rules-realted
information) should be saved under the same name (ie: I
have created all the CHEESE consultation files under the
name CHEESE, allowing XXXPERT to provide the extensions,
resulting in DOS filenames of CHEESE.R, CHEESE.A and
CHEESE.K for the CHEESE rules, CHEESE asks, and CHEESE keep
respectively). The role of .K files is explained later. My
CHEESE example does not use prologue, intermission or
epilogue.
Zap clears out the contents of the area currently being
edited. Note that Zap has no impact on disk files by
itself. Only the data inside XXXPERT is cleared unless you
subsequently do a Save.
Quit takes you back to the Editfile menu, terminating the
current edit process. The edit data is retained in XXXPERT
but is not saved to disk unless you do a save before the
quit.
CONSULT
The main menu's Consult option uses the current set of asks
and rules in XXXPERT to conduct a consultation with you on
the basis of the logic you defined in those rules and asks.
Based on your answers to the questions XXXPERT poses, a
recommendation will be made according to the inference
rules. You must press the return key with each reply you
provide to XXXPERT's questions. You may correct any error
in an answer prior to pressing return by using the backspace
key or the left-arrow key. You may terminate the
consultation at any prompt by pressing the escape key (ESC.)
Please remember that XXXPERT's conclusion and recommendation
will be based solely on the rules you provide. The quality
of the recommendation is therefore directly dependent on the
quality of inference rules you develop. Before using
XXXPERT or CONSULT to make any important decision you should
thoroughly test the expert system you have built to be sure
that XXXPERT and CONSULT give you the results you intend.
KEEP
The keep command on XXXPERT's main menu may be used to
create and store (on disk) a compiled form of the currently
retrieved set of rules. This compiled form may later be
used by the CONSULT program (CONSULT.COM) to immediately
conduct a consultation session with that set of rules (and
associated files) without the need to see the XXXPERT banner
screen, use menus, perform getfiles, and wait for
compilations. This greatly aids in the creation of
applications involving multiple rulesbases, multiple
consultations and/or other software (besides XXXPERT). See
the CONSULT PROGRAM section later in this manual.
TRACE
The trace command is available on the main menu to switch
trace mode on and off for XXXPERT. Requesting trace will
turn the trace mode on if it is currently off, and vice-
versa. Consultations that are run while trace is on will be
accompanied by a trace-style debugging report on the
inference rules being used by XXXPERT's reasoning process as
the consultation progresses. This allows you to test the
rules you develop in an easy and visible way.
XREF
The XREF command on XXXPERT's main menu may be used to
display an analysis report on the currently reteived set of
rules. This report consists of three parts: the listing,
the cross reference and the warnings analysis.
The listing shows the current set of rules in a stadard
format labeled with line numbers to aid in use of the cross
reference part of the report.
The cross refernce shows each identifier in the rulebase
along with the line numbers for each rule line in which that
identifier is used.
The warnings analysis reports instances in the current set
of rules where a field value is created but never used or
vice-versa. That is, a warning message will be issued for
each field value that appears in a THEN but is not used in
any IF and for each field value that is used in an IF but
does not appear in any THEN. Certain instances of the above
are screened out, however as follows:
1. A field value that appears in a THEN for the goal will
not be subject to warnings (since goals are not normally
used in IFs.
2. A field value that appears in an IF will be subject to
warnings only if the field identifier appears in at least
one THEN (with another value). (Field identifiers that
never appear with any value in any THEN are assumed to be
included in an ASK.)
OUTPUT
The output option on XXXPERT's main menu may be used to
access a selection screen that controls whether TRACE and
XREF output are directed to the screen (by default) or to
the first parallel printer port (by option).
CONSULT PROGRAM
The CONSULT program allows you to conduct a consultation
session using a set of rules for which a KEEP has previously
been executed in XXXPERT. CONSULT goes directly into
consultation without any intervening screens, menus,
compilations or prompts.
CONSULT may be started by typing CONSULT followed by the
name of the 'kept' rules that are to be used. The example
below would initiate a consultation for the CAR rules using
the 'kept' car rulesfile: CAR.K and the CAR asksfile: CAR.A:
consult car
This type of command may be used at the DOS prompt or within
a BATCH file on your DOS system.
EXTENDED INPUT/OUTPUT
The CONSULT program has a feature called extended
input/output that greatly facilitates the linking of XXXPERT
rulebases with each other and with information from other
systems. Extended input/output allows data to be passed
into a consultation session and it allows the conclusion of
a consultation session to be passed out to another
consultation session or another system. The two most likely
uses for this feature are: 1- linking together multiple
related expert systems that would be too large to be
integrated into a single rulebase (either because of human
limitations or XXPERT limitations) and 2- linking expert
systems consultations in with other PC-based applications
and data.
You may pass data values into a consultation for any of the
rule fields by arranging for the desired values to be in a
file when CONSULT is started. The file name should match
the rule file name except that the extension must be: .I
instead of: .R. Thus to run a consultation passing data in
to be used with the CAR rules you would create a file named
CAR.I and start the session by issuing CONSULT CAR at the
DOS prompt (or within a batch file).
Within the .I file the data fields and corresponding data
values should alternate lines in a manner similar to the
ASKs files. The first line should contain the first field
of interest, the second line a value for that field, and so
on. Thus to inform the CAR consultation that it should use
a value of 44 for TURNS you would create a CAR.I file that
looks like this:
TURNS
44
Turns is the field of interest and therefore is on the first
(or any odd-numbered line) and 44 is the value for TURNS so
it is on the line immediately after TURNS.
At the end of any CONSULT session a value will be determined
for the goal (assuming the rulebase contains sufficient
knowledge). CONSULT always then creates a file (with a .O
extension and a name matching the rule file name) that
contains the goal field name on the first line and the value
for the conclusion on the second line. This data may be
used by other systems or by other CONSULT sessions if
desired. Note that (not coincidentally) the .O file has a
format consistent with .I file requirements. This allows
you to rename a .O file to an appropriate .I name and use it
as input to a consultation session (the renaming could be
done in a batch file, for example). You can, therefore, use
these files and the DOS batch file capability to link
multiple rulebases through multiple consultations in
combination with any other software of your choosing. This
allows you to build arbitrarily complex expert systems and
integrate them with non-XXXPERT appplications using familiar
DOS facilities!
A DOS batch file to link the CAR rulebase with another
rulebase (CARFIX, for example) might look like this:
ERASE CAR.O
ERASE CARFIX.I
CONSULT CAR
RENAME CAR.O CARFIX.I
CONSULT CARFIX
Such a batch file would run a CAR consultation, pass the
conclusion to CARFIX and run the CARFIX consultation with
the conclusion of the CAR consultation as input (that
otherwise would need to be obtained from the user with an
ASK.) The ERASE commands have been included to prevent the
possibility of using files left over from preious runs. The
.O files are not created if CONSULT finds that its rulebase
does not provide sufficient knowledge to make a
recommendation, so the use of ERASE may be key to insuring
the integrity of your overall batch job.
With the above batch file as written, the first consult will
report its results to the screen as well as to the CAR.O
file. It may not always be desirable to report
intermediate results in a series of CONSULTs and if this is
the case, screen output may be suppressed by including a
second parameter (X) in the CONSULT command after the rule
file name. In the above example the output from the CAR
consultation could have been suppressed by rewriting the
CONSULT command in the following way:
CONSULT CAR X
Note that these various file sharing techniques could be
used to share data with spreadsheets, databases, graphics
packages or any other PC application.
MINICON
MINICON is a version of CONSULT that requires much less
memory (RAM) to run but lacks the ability to perform any of
the ASK functions. It is very useful if you want to
integrate an expert system facility inside another
application without taking much additional memory (about
115k or so). All data needed by MINICON to perform the
consultation must already be in a .I file since ASKs are not
available. MINICON may be used by most any application that
has the ablility to run external programs.